<feed xmlns='http://www.w3.org/2005/Atom'>
<title>home-sveltekit/src/routes/grocery/[id]/+page.server.ts, branch main</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<id>https://git.kagamino.dev/home-sveltekit/atom?h=main</id>
<link rel='self' href='https://git.kagamino.dev/home-sveltekit/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/home-sveltekit/'/>
<updated>2026-09-08T07:25:03Z</updated>
<entry>
<title>Share grocery row component and list-page form actions</title>
<updated>2026-09-08T07:25:03Z</updated>
<author>
<name>Martin Kagamino Lehoux</name>
<email>martin@lehoux.net</email>
</author>
<published>2026-09-08T07:25:03Z</published>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/home-sveltekit/commit/?id=3148742b323ab71f1ef768a2f4dc353c00944034'/>
<id>urn:sha1:3148742b323ab71f1ef768a2f4dc353c00944034</id>
<content type='text'>
- GroceryRow.svelte renders the toggle row (checkbox, name, best ref,
  arrow link) for both the list and catalog pages
- grocery-actions.ts grows full form actions: addCategoryAction,
  addGroceryAction, addGroceryAndEditAction, deleteByIdAction; the
  categories/groceries route servers become thin wrappers
</content>
</entry>
<entry>
<title>fix: adding a ref no longer triggers the Enregistré timeout</title>
<updated>2026-07-28T19:33:42Z</updated>
<author>
<name>Martin Kagamino Lehoux</name>
<email>martin@lehoux.net</email>
</author>
<published>2026-07-28T19:30:22Z</published>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/home-sveltekit/commit/?id=501c16beab78c2640766a60f2c32a6c597f11f37'/>
<id>urn:sha1:501c16beab78c2640766a60f2c32a6c597f11f37</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix: redirect to origin page after deleting an item</title>
<updated>2026-07-28T16:23:57Z</updated>
<author>
<name>Martin Kagamino Lehoux</name>
<email>martin@lehoux.net</email>
</author>
<published>2026-07-28T16:23:57Z</published>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/home-sveltekit/commit/?id=0d100b83f8ba818c2f32663f415649db03534548'/>
<id>urn:sha1:0d100b83f8ba818c2f32663f415649db03534548</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix: redirect to previous page after deleting an item</title>
<updated>2026-07-28T16:16:04Z</updated>
<author>
<name>Martin Kagamino Lehoux</name>
<email>martin@lehoux.net</email>
</author>
<published>2026-07-28T16:16:04Z</published>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/home-sveltekit/commit/?id=ebe7b49f3f1306d20778a4964e6fe26f82db1b50'/>
<id>urn:sha1:ebe7b49f3f1306d20778a4964e6fe26f82db1b50</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat: editable name and category in grocery detail page</title>
<updated>2026-07-28T13:29:32Z</updated>
<author>
<name>Martin Kagamino Lehoux</name>
<email>martin@lehoux.net</email>
</author>
<published>2026-07-28T13:29:32Z</published>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/home-sveltekit/commit/?id=db2f142aaf98ba36d1e9b17ce8a4299268d1b69b'/>
<id>urn:sha1:db2f142aaf98ba36d1e9b17ce8a4299268d1b69b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>refactor: services layer, valibot validation, shared CSS utilities, aria labels, and drizzle migrate</title>
<updated>2026-07-28T13:07:57Z</updated>
<author>
<name>Martin Kagamino Lehoux</name>
<email>martin@lehoux.net</email>
</author>
<published>2026-07-28T13:07:57Z</published>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/home-sveltekit/commit/?id=04fabf115ccea31ac504b06cc51d78423b697f60'/>
<id>urn:sha1:04fabf115ccea31ac504b06cc51d78423b697f60</id>
<content type='text'>
- Extract groceries/categories/references services with db injection
- Add valibot for form validation and safe numeric id parsing
- Fix category delete FK behavior with onDelete: set null + migration
- Replace custom migrate.js with drizzle-orm/libsql/migrator
- Add shared CSS utility classes in app.css (forms, lists, buttons)
- Add aria-pressed and aria-label on interactive elements
- Remove redundant app.css imports and unused /stores import
- Add integration tests for all services using drizzle migrate helper
- Remove smoke test; add db:migrate and db:studio scripts
</content>
</entry>
<entry>
<title>feat: warm redesign, full French localization, compact sticky form, fixed row heights, and show quality score in list</title>
<updated>2026-07-28T10:13:31Z</updated>
<author>
<name>Martin Kagamino Lehoux</name>
<email>martin@lehoux.net</email>
</author>
<published>2026-07-28T10:13:31Z</published>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/home-sveltekit/commit/?id=45cc0afb734a422ee7765dc5c60dccbcc6721367'/>
<id>urn:sha1:45cc0afb734a422ee7765dc5c60dccbcc6721367</id>
<content type='text'>
</content>
</entry>
<entry>
<title>refactor: rename brand to reference everywhere</title>
<updated>2026-07-27T19:07:48Z</updated>
<author>
<name>Martin Kagamino Lehoux</name>
<email>martin@lehoux.net</email>
</author>
<published>2026-07-27T19:07:48Z</published>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/home-sveltekit/commit/?id=d9a200cd35a3d06173846a45c9f58acb1adf61aa'/>
<id>urn:sha1:d9a200cd35a3d06173846a45c9f58acb1adf61aa</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat: product references + grocery detail page</title>
<updated>2026-07-27T17:53:11Z</updated>
<author>
<name>Martin Kagamino Lehoux</name>
<email>martin@lehoux.net</email>
</author>
<published>2026-07-27T17:53:11Z</published>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/home-sveltekit/commit/?id=e075698891d653330b5d5d0f80c2c3495aee6262'/>
<id>urn:sha1:e075698891d653330b5d5d0f80c2c3495aee6262</id>
<content type='text'>
- references table (brand, price, unit, quality_score) with FK to groceries
- /grocery/[id] page for managing references per item
- Unit dropdown (€/kg, €/L, €/u) defaulting to €/kg
- → link on all items navigates to detail page
- Delete item moved from catalog to detail page
</content>
</entry>
</feed>
